#ifndef FILEFILTER_H
#define FILEFILTER_H

#include "config.h"
#include<filesystem>
#include <regex>
namespace fs = std::filesystem;




//文件过滤的功能
class FIleFilter
{
public:
    FIleFilter();
    FIleFilter* shared();
    virtual bool filter(const fs::path &path);

    virtual void setSize(ulint size,FILESIDE fside);
    
private:
    ulint fileSize;//文件大小
    FILESIDE fSide;//大于或者小于方向的
    virtual  bool SizeFilter(const fs::path &path);

    std::regex regex;//查询名称时的正则表达式
    bool bNameFilterStatus = false;//选择是否使用正则表达式
    void setRegex(const std::string & str,bool bCase = true);
    virtual bool NameFilter(const fs::path &path);
};

#endif // FILEFILTER_H
